<?php
use App\Http\Controllers\Admin\RecordController;
/**
 * 生成UUID（唯一）
 * @return string
 */
function makeUuid()
{
    $address = strtolower('localhost' . '/' . '127.0.0.1');
    list ( $usec, $sec ) = explode(" ", microtime());
    $time = $sec . substr($usec, 2, 3);
    $random = rand(0, 1) ? '-' : '';
    $random = $random . rand(1000, 9999) . rand(1000, 9999) . rand(1000, 9999) . rand(100, 999) . rand(100, 999);
    $uuid = strtoupper(md5($address . ':' . $time . ':' . $random));
    $uuid = substr($uuid, 0, 8) . '-' . substr($uuid, 8, 4) . '-' . substr($uuid, 12, 4) . '-' . substr($uuid, 16, 4) . '-' . substr($uuid, 20);
    $uuid = str_replace("-", "", $uuid);
    return $uuid;
}

/**
 * 检测变量是否是手机号码
 * 手机号码必须是11位的数字，第一位数字必须为1，第二数字必须是34568中的任意一个
 * @param string $val 手机号码
 * @return bool
 */
function isMobile($val) {
    return preg_match('/^1\d{10}$/', $val);
}

/**
 * 检测变量是否是座机号码
 * 3-4位区号，7-8位直播号码，1－4位分机号
 * @param string $val 座机号码
 * @return bool
 */
function isPhone($val) {
    return preg_match('/^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$/', $val);
}

/**
 * 检测变量是否是密码
 * 密码只能是6-30位英文、数字及“_”、“-”组成
 * @author 刘道健
 * @param string $val 密码
 * @return bool
 */
function is_pwd($val) {
    return preg_match('/^[\w-]{6,30}$/', $val);
}

/**
 * 检测变量是否是邮件地址
 * @author 刘道健
 * @param string $email email
 * @return bool
 */
function isEmail($email) {
    return preg_match('/^[\w-]+(\.[\w-]+)*\@[A-Za-z0-9]+((\.|-|_)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/', $email);
}

/**
 * 匹配身份证号
 * @param int $num
 * @returns bool
 */
function isIdentity( $num ) {
    return preg_match('/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/',$num);
}

function isMoney($money) {
    return preg_match(' /^(([1-9]\d*(,\d{3})*)|([0-9]\d*))(\.(\d{1,2}))?$/',$money);
}

/**
 * 检查是否是整数
 * @param string $val 值
 * @param int $type 默认为空【1.大于0的整数 2.大于等于的整数 3.小于0的整数 4.小于等于0的整数】
 * @return bool
 */
function ebsig_is_int($val, $type = 1) {

    if (ceil($val) != $val)
        return false;

    if ($type == 1 && $val <= 0)
        return false;
    else if ($type == 2 && $val < 0)
        return false;
    else if ($type == 3 && $val >= 0)
        return false;
    else if ($type == 4 && $val > 0)
        return false;

    return true;
}

/**
 * 检测变量是否是日期或日期+时间
 * @param $val
 * @return bool
 */
function is_true_date( $val ) {
    return preg_match('/^\d{4}[\-](0?[1-9]|1[012])[\-](0?[1-9]|[12][0-9]|3[01])(\s+(0?[0-9]|1[0-9]|2[0-3])\:(0?[0-9]|[1-5][0-9])\:(0?[0-9]|[1-5][0-9]))?$/', $val);
}


/** 生成随机验证码字符串
 * @param String $val
 */
function random($len) {
    $srcstr = "13456789abcdeghijklmnprstuvwxyABCDEFGHIJKLMNPQRSTUVWXY";
    mt_srand();
    $strs = "";
    for ($i = 0; $i < $len; $i++) {
        $strs .= $srcstr[mt_rand(0, 30)];
    }
    return $strs;
}

/*
 * 生成随机数
 * @param $len 随机数长度
 * return code 随机数
 */
function rand_number($len)
{
    $code = '';
    if( $len <= 0 ){
        return 0;
    }

    for ($i = 0 ; $i <$len; $i++ ){
        $code.= rand(1,9);
    }
    return $code;
}

/**
 * 去除所有空格
 */
function trim_all($str = ''){
    if(empty($str))
        return $str;
    return str_replace(' ', '', $str);
}

/*
 *
 * 系统日志
 *
 * f
 * */

function record($iRcordSql="",$sRecordRemark=""){
    $record=new RecordController();
    $record->Record($iRecordType=1,$iRcordSql,$iRecordCode=0,$sRecordRemark);
}

/**
 * 分页程序
 * @param int $pageIndex 当前页数
 * @param int $count 总数量
 * @param int $limit 每页显示数量
 * @param string $link 分页链接，链接里的页码部分用%d代替，在本方法中会用sprintf函数替换%d为页码。
 * @param string $tpl 分页模板
 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View|null
 */
function page($pageIndex, $count, $limit, $link, $tpl = 'page.page') {

    $pageCount = ceil($count / $limit);
    if ($pageCount == 1)
        return null;

    $pageLinks = [];
    if ($pageIndex > 1) {
        $pageLinks['previous']['link'] = sprintf($link, $pageIndex - 1);
        $pageLinks['previous']['page'] = $pageIndex - 1;
    }
    if ($pageIndex < $pageCount) {
        $pageLinks['next']['link'] = sprintf($link, $pageIndex + 1);
        $pageLinks['next']['page'] = $pageIndex + 1;
    }
    $i = 1;
    while ($i <= $pageCount) {
        $pageLinks['link'][] = array('href' => sprintf($link, $i), 'text'=> $i);
        if ($pageIndex - 3 > $i) {
            $pageLinks['link'][] = array('href' => '', 'text'=> '...');
            $i = $pageIndex - 3;
        } else if ($i < $pageCount && $pageIndex + 3 < $i && $pageCount - 1 > $i) {
            $pageLinks['link'][] = array('href'=>'', 'text'=>'...');
            $i = $pageCount - 1;
        }
        $i++;
    }
    $pageLinks['pageIndex'] = $pageIndex;
    $pageLinks['total'] = $count;
    $pageLinks['pageCount'] = $pageCount;
    $pageLinks['skip_link'] = $link;

    return view($tpl, ['pageLinks'=>$pageLinks]);

}

